/*
** Copyright (C) 2010 Calin Radoni
**
** This file is part of CHScanner.
**
** CHScanner is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** CHScanner is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with CHScanner. If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once

#include "Nb30.h"

#include <lm.h>

#include "MShareInfoList.h"

// use Netapi32.lib

#define	MAX_NAME_BUFFERS 30

class NetBios{
private:
	CString AdapterName;
	CString BuildName(CString);

	void BuildType(char*, unsigned char, char*);

	unsigned char goodLana;
	LANA_ENUM lanas;
	bool EnumerateLana(void);
	bool IsGoodLana(unsigned char);
	bool FindGoodLana(void);

	CString macString;

public:
	NetBios(void);
	~NetBios(void);

	void SetAddress(CString);

	NAME_BUFFER Names[MAX_NAME_BUFFERS];
	int GetNetBiosInfo(BYTE* buffIn);	// 6 bytes long !

	CString GetNBName(int);

	CString GetNetBiosName(char*);
	CString GetNetBiosNameUnique(BYTE, CString);
	CString GetNetBiosNameGroup(BYTE, CString);

	MShareInfoList shareInfoList;
	bool EnumerateShares(void);
};

//---------------------------------------------------------------------------
